1. Field of Invention
The present invention relates generally to mass digital data storage systems. More particularly, the present invention relates to systems and methods for reducing the number of times a file allocation table (FAT) block associated with a flash memory is copied.
2. Description of the Related Art
The use of non-volatile memory systems such as flash memory storage systems is increasing due to the compact physical size of such memory systems, and the ability for non-volatile memory to be repetitively reprogrammed. The compact physical size of flash memory storage systems facilitates the use of such storage systems in devices which are becoming increasingly prevalent. Devices which use flash memory storage systems include, but are not limited to, digital cameras, digital camcorders, digital music players, handheld personal computers, and global positioning devices. The ability to repetitively reprogram non-volatile memory included in flash memory storage systems enables flash memory storage systems to be used and reused.
In general, flash memory storage systems may include flash memory cards and flash memory chip sets. Flash memory chip sets generally include flash memory components and a controller components. Typically, a flash memory chip set may be arranged to be assembled into an embedded system. The manufacturers of such assemblies or host systems typically acquire flash memory in component-form, as well as other components, then assemble the flash memory and the other components into a host system.
As shown in FIG. 1a, within a file system, memory 10 is effectively divided into a system or directory area 12 and a data area 14. System area 12 generally includes root directories and file allocation tables (FATs), while data files are typically included in data area 14. A file system may write data in sectors, e.g., one page at a time, into system area 12, while writing data in clusters, e.g., multiple pages at a time, into data area 14. The size of each cluster, which is generally the minimum size of a file that is associated with data area 14, may vary. For example, in an overall system which is running either a Windows or a DOS system, a cluster may be sized to include approximately four pages.
In system area 12, access is generally made to a sector or a page at a time. That is, when an update is to be made in system area 12, as for example to a FAT, substantially only one page is updated at any given time. Any updates associated with a logical block, or a block that is associated with a file system, are effectively propagated to a physical block which is mapped to the logical block. FIG. 1b is a diagrammatic representation of a mapping between a logical block and a physical block. A logical block 52 includes a plurality of pages which are each mapped to pages of a physical block 54 such that when a page associated with logical block 52 is updated, the update is written into physical block 54.
When a page is updated, a physical block which corresponds to the page is effectively recopied into a new physical block which incorporates the page, and the original physical block is erased. In general, copying the entire contents of a physical block any time a single page is to be updated within the block utilizes a relatively significant amount of overhead, and may prove to be time-consuming.
Therefore, what are desired are a method and an apparatus for efficiently enabling pages associated with system blocks to be updated. That is, what is needed is a process and a system which enables blocks within which substantially only a single page is rewritten at any given time to effectively be updated without requiring a significant use of computational resources.